import dayjs from 'dayjs'
import 'dayjs/locale/zh-cn'

dayjs.locale('zh-cn')

/**
 * formatDate：格式化日期字符串
 * @param {number} milliseconds 毫秒数
 * @param {*} formatStr 希望格式化的日期格式字符串，可为空，为空时按照默认规则格式化日期
 * @returns 格式化后的日期字符串
 */
const formatDate = function (milliseconds, formatStr) {
  if (formatStr !== undefined && typeof formatStr === 'string') {
    return dayjs(milliseconds).format(formatStr)
  }
  const date = dayjs(milliseconds).format('YYYY-MM-DD') // 获取指定日期字符串
  const now = dayjs().format('YYYY-MM-DD') // 获取当前日期字符串
  const subDays = dayjs(date).diff(now, 'day') // 获取相差日期天数 指定日期减去当前日期
  switch (subDays) {
    case 2:
      return dayjs(milliseconds).format('后天 MM月DD日')
    case 1:
      return dayjs(milliseconds).format('明天 MM月DD日')
    case 0:
      return dayjs(milliseconds).format('今天 MM月DD日')
    case -1:
      return dayjs(milliseconds).format('昨天 MM月DD日')
    case -2:
      return dayjs(milliseconds).format('前天 MM月DD日')
    default:
      return dayjs(milliseconds).format('ddd MM月DD日')
  }
}

export { formatDate }
